#!/bin/bash

# 获取脚本所在目录
script_dir="/opt/qas/quality"

jar_name="yced-quality-service-1.0.0-SNAPSHOT.jar"
# 启动命令
# nohup java -Duser.timezone=Asia/Shanghai -jar /opt/qas/quality/yced-quality-service-1.0.0-SNAPSHOT.jar > /opt/qas/quality/logs/console.log  2>&1 &
# 根据输入参数获取发布者信息，默认为 root
if [ -z "$1" ]; then
    publisher="root"
else
    publisher="$1"
fi


# 检查 bak 目录中是否存在 jar 文件，存在则备份当前目录下的 jar 文件到 bak 目录，
#并在备份文件名中包含时间信息，并转换为指定时区的时间


jar_file="$script_dir/bak/$jar_name"

if [ -f "$jar_file" ]; then

    current_time=$(TZ='Asia/Shanghai' date +"%Y%m%d%H%M%S")	

    echo "current_time: $current_time"

    backup_file="${script_dir}/bak/${jar_name}.bak${current_time}"
    
    echo "备份文件名为$backup_file 到 ${script_dir}/bak"	
    
    cp "$jar_file" "$backup_file"

    echo "备份文件结果成功"

    mv -f  "$jar_file" "${script_dir}/${jar_name}"

    echo "移动文件成功"    

else

    echo "直接重启服务"

fi


if pgrep -f "$jar_name" > /dev/null; then

    echo "服务停止 pid:" $(pgrep -f $jar_name)

    pkill -f "$jar_name"

fi

#等待3秒
sleep 3 

nohup java -Duser.timezone=Asia/Shanghai -jar "${script_dir}/${jar_name}" > "${script_dir}/logs/console.log"  2>&1 &

pid=$(pgrep -f $jar_name)

# 获取当前时间
restart_time=$(TZ='Asia/Shanghai' date +"%Y-%m-%d %H:%M:%S")

if [ -n "$pid" ]; then
    echo "服务启动成功 pid:$pid"
    #  webhook
    webhook_url="https://open.feishu.cn/open-apis/bot/v2/hook/xxx"

	# 构建消息内容
	message='{
		"msg_type": "post",
		"content": {
			"post": {
				"zh_cn": {
					"title": "发布通知",
					"content": [
						[{"tag": "text", "text": "服务名称：【质量服务2.0】"}],
						[{"tag": "text", "text": "环境信息：【测试环境】"}],
						[{"tag": "text", "text": "发布时间：'$restart_time'"}],
						[{"tag": "text", "text": "当前进程：'$pid'"}],
						[{"tag": "text", "text": "发布作者：'$publisher'"}]
					]
				}
			}
		}
	}'

	 curl -X POST -H "Content-Type: application/json" -d "$message" $webhook_url	
else
	 echo "服务启动失败，未能获取有效的 pid"
fi

